精
哈哈,终于知道用MW生成的mfl文件和mfs文件的结构了,发帖庆祝!
id: 630365351 | 楼主:_AgOH | 返回首页
id: 6541353707
1L | 作者:_AgOH | 发布于 2009-08-19 12:33
啦啦啦~~~
id: 6541376133
2L | 作者:_AgOH | 发布于 2009-08-19 12:36
结论1:
二者均使用GZip格式压缩,可以轻松地使用 WinRAR或 7-Zip 打开
结论2:
打开后里面是一个纯文本文件,至于如何从里面提取信息嘛,呵呵,先留个悬念,以后再说!呵呵~
id: 6541841484
4L | 作者:飞翔的耀西 | 发布于 2009-08-19 13:43
mfsx文件就是解压缩后的mfs文件
id: 6541932888
5L | 作者:HappyLee_12 | 发布于 2009-08-19 13:56
啊!!!
id: 6543058089
6L | 作者:_AgOH | 发布于 2009-08-19 16:33
OK,下面我将分成几部分来介绍mflx(让我们暂时把解压缩后的MFL文件称为mflx文件吧~~) 而解压后的mfs文件就是mfsx文件。
1.MFLX文件的结构。
2.MFSX文件的结构。
3.如何把MFS文件反编译为MFL文件(我们的终极目标!!呵呵)
下面开始——————在我说THE END之前禁止插楼,呵呵!
id: 6543484536
7L | 作者:_AgOH | 发布于 2009-08-19 17:33
1.MFLX文件的结构.
1)头部(Header):
我们把BlocksDataStart之前的数据称为MFLX文件的头部,这一部分储存着关卡的基本信息,一共10行,大多可以在PREF'S部分设置。
行 含义 举例 举例释义
1 (关卡长度*32)+10 6410 关卡长度=(6410-10)/32=200
2 (关卡高度*32)+10 650 关卡高度=(650-10)/32=20
3 关卡名称 1-1 关卡名为1-1
4 关卡作者 _AgOH 关卡作者为_AgOH
5 关卡时间 400 关卡时间为400s
6 重力(1-5) 4 重力为4
7 库巴能量 10 库巴一共10格能量
8 水的深度信息 1900 这个数据的计算方法较为复杂,
目前尚在研究当中,数值越大,
水就越浅
9 关卡背景 3 第3个背景(GRASSLANDS)
10 背景音乐 7 音乐7(Map2)
id: 6543910267
8L | 作者:_AgOH | 发布于 2009-08-19 18:38
2)方格数据(BlocksData)
下面我们就要进入mflx的核心了,这一部分存储的是Blocks的信息,其内容介于BlocksDataStart与BlocksEnd之间。咋一眼看去,哇,都是0101,看不懂?其实,不要担心,这不是2进制数据,更不是乱码,而是每一个方格的Block信息!其实SoftEndo在这一点上的处理相当弱智------他居然使用遍历的方法,每一个方格的信息都写入,即使这是个空的方格!
BlocksData一共分为n行,每一行对应关卡的一行,例如关卡的高度为50,那么一共就50行。每一个方格占用2个字节储存信息,例如关卡长度为300,那么每一行就有600个字节。储存每个方格Block信息的是利用对应Block的ID,如水管管体左部为17,右部为18,而如果什么都没有就用00来存储(具体每个Block的ID是什么就不说了,相信大家也不太需要这些数据。了解了这个规则,再看一看文件,不可思议的事情发生了:由1~9这9个数字居然组成了这个地图!多么完美的地形!!!
id: 6544096913
9L | 作者:_AgOH | 发布于 2009-08-19 19:08
3)其它数据(Other Data)
上面说得这么多,您可能要说了:关卡的内容不仅仅是Blocks啊,还有风景(Scenery)、敌人(Enemies)等,呵呵,不要着急,BlocksEnd下面还有东西呢!
BlocksEnd下的数据分为若干行,每一行有11个字节,不过这些数据就更难解读了,先来说说基本格式吧:
21800160480
218:物品ID 0016:物品X坐标(是乘上8之后的结果) 0480物品Y坐标(是乘上32后的结果)
这里坐标的计算原则与我们平时不相同,左上角为(0,0)往右X坐标增加,往下Y坐标增加
因此,上面的数据被解析为:在坐标(2,15)下放一个实心块(实心块的ID为218)
又如:
00108160448
含义为:在坐标(102(=816/8),14(=448/32))下放一个Gommba(ID=001)
具体的物品与其ID的关系,有兴趣的朋友们可以去研究研究~
OK,貌似这个文件都分析完了?不对,后面怎么还有三个小黑块??呵呵,其实这个并不是什么神秘的东西,它只是标记这个文件的结束罢了~呵呵~
OK,mfl分析完了,下面该分析MFS了。。。
id: 6544184695
10L | 作者:_AgOH | 发布于 2009-08-19 19:21
2.mfsx文件的结构.
其实mfsx文件就是几个mflx的简单拼接,并未经过任何特殊处理,因此要反编译这些文件是相当简单的!!当然mw为了识别每一个关卡,还是要加一些分界线的,好了,现在什么都不说了,立刻开始吧!!
1)头部(Header)
除了mfl文件之外,mfs文件还要储存一些特殊信息,但是这样的信息只有1项:Mario的生命数,所以MFS文件的头部也只有1行!这一行就是Mario 的生命数,如15。
下面就是mfsx文件的主体了。
2)关卡分界线(New Level)
在mfs里,New Level字符的出现,将意味着一个mfl文件的结束(关卡1除外),以及另外一个mfl的开始。所以,New Level就是关卡的分界线啦~
3)小关卡主体(MFL Body)
在两个New Level之间的数据是这个关卡的主体,将它提取出来就是mflx文件啦!其实这就是反编译的原理,后面我会详细介绍~
4) 结束标志(The End)
与mflx相同,mfsx同样使用一个小黑块作为文件结束标志。
id: 6544285122
11L | 作者:_AgOH | 发布于 2009-08-19 19:36
3.如何把mfs文件反编译为mfl文件。
其实可能部分朋友看到这里已经学会反编译的方法,不过为了方便新手们学习,这里还是在唠叨几句k~
所需工具:支持GZip解压缩的工具(如WinRAR、7-Zip、GZip等)、支持GZip压缩的工具(如7-Zip、GZip等)、一个mfs地图文件。
OK,操作开始----
1.使用GZip解压工具打开MFS文件,提取出里面的MFSX文件。
2.仿照2.3的方法,从里面提取出mflx文件。
3.使用GZip解压工具将mflx文件压缩,然后扩展名改为mfl。
OK,现在------大功告成!用MW打开反编译后的MFL文件,看看我们是不是成功了!
--------------THE END------------
另外,此贴申精,毕竟它费了我不少的时间哈!!感谢大家支持!
id: 6547188989
12L | 作者:syzxchulun | 发布于 2009-08-20 08:52
楼主太强大了@_*...
id: 6547436306
13L | 作者:_AgOH | 发布于 2009-08-20 09:47
唉~顶的人太少了~它可是花费了我3个多小时研究出来的成果啊
id: 6547503761
14L | 作者:_AgOH | 发布于 2009-08-20 10:00
还是再发个图片吧~反编译后的HLCrazyWorld6-1(说明:绝无恶意,仅供学习研究之用,请HL不要见怪~)
id: 6547629603
15L | 作者:Koppa_Maker | 发布于 2009-08-20 10:22
ding
id: 6547936082
16L | 作者:CXY0101 | 发布于 2009-08-20 11:11
狂顶LZ
我还以为是一些无意义的数据呢
id: 6548122164
17L | 作者:飞翔的耀西 | 发布于 2009-08-20 11:40
回复:11楼
我在你之前(昨天下午)就把反编译的方法发到Softeno论坛了,哈哈
http://www.softendo.com/forum/viewtopic.php?f=12&t=514
id: 6548135197
18L | 作者:60.210.40.* | 发布于 2009-08-20 11:42
ding!!!!!
id: 6548175243
19L | 作者:SUPERMARIOFORE | 发布于 2009-08-20 11:48
好!
id: 6548262615
20L | 作者:y479021776 | 发布于 2009-08-20 12:01
你用的什么工具啊?
id: 6548511039
21L | 作者:y479021776 | 发布于 2009-08-20 12:43
谁能教教我呀?
id: 6549405016
22L | 作者:_AgOH | 发布于 2009-08-20 15:02
回20楼:你说的是反编译MFS文件么?我在10楼已经说得很清楚了,不过现在据lyh说未经压缩的mfl文件也能被读取,所以你只需要有WinRAR就够了~如果还没有的话~那么直接从mfsx文件中提取也可以.
id: 6549430282
23L | 作者:y479021776 | 发布于 2009-08-20 15:06
可是MFL文件用MW打不开啊
id: 6549431851
24L | 作者:_AgOH | 发布于 2009-08-20 15:06
回17楼:
As for the structure of the level, I DON'T KNOW, SORRY. (But one of my friend knows)
-------------------------------------
-------------------------------------
..............
另外很感谢你给我提了个醒,就是未经压缩的MFL文件和MFS文件同样能被MW接受!
id: 6549442667
25L | 作者:y479021776 | 发布于 2009-08-20 15:08
还是不懂
id: 6549452898
26L | 作者:_AgOH | 发布于 2009-08-20 15:09
????打不开?请确定:
1.你的mfl文件是严格按照10楼和11楼的方法提取出来的,且未经过压缩x.
2.如果你把文件压缩了的话,请确定必须是GZip格式.
id: 6549480696
27L | 作者:y479021776 | 发布于 2009-08-20 15:14
看不懂10F啊
id: 6549530892
28L | 作者:y479021776 | 发布于 2009-08-20 15:21
还是不懂
id: 6549546269
29L | 作者:_AgOH | 发布于 2009-08-20 15:23
唉,还是到Hi里聊吧,这样会比较方便
id: 6549845282
30L | 作者:Anti_Tencent | 发布于 2009-08-20 16:08
我刚发现这一点,正准备说,没想到……
id: 6549997950
31L | 作者:飞翔的耀西 | 发布于 2009-08-20 16:30
回复:24楼
早发现了……
id: 6555790998
32L | 作者:_AgOH | 发布于 2009-08-21 13:59
唉~看来我又落后了~~
id: 6578991609
33L | 作者:_AgOH | 发布于 2009-08-24 21:40
注意:更正该帖子一重要错误:9楼中的第2项数据是X坐标乘上32之后的结果,而不是8!
id: 7658715604
34L | 作者:newlife2017 | 发布于 2010-03-13 11:11
2000
2000
NEWLIFE WORLD1
newlife2017
400
5
5
1400
0
17
BlocksDataStart
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
id: 7658715605
35L | 作者:newlife2017 | 发布于 2010-03-13 11:11
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
id: 7658715606
36L | 作者:newlife2017 | 发布于 2010-03-13 11:11
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
BlocksEnd
id: 8137404094
37L | 作者:newlife2017 | 发布于 2010-05-09 16:51
我做nlw的时候,开始时改了一下参数发的,按照agoh的介绍,供大家参考
id: 11228820991
39L | 作者:祝贺高考成功3 | 发布于 2011-02-08 17:24
2.仿照2.3的方法,从里面提取出mflx文件。
怎么回事???
另外,恕我挖坟,求求吧主了。
id: 11229387104
40L | 作者:Fahlee | 发布于 2011-02-08 18:17
回复:39楼
这种东西不能告诉别人
id: 11229488376
42L | 作者:GlaDOS_Nice | 发布于 2011-02-08 18:26
顶个帖子没有封号的道理
另外如果不是抄袭、套作、挪用的话反编译说到底也是交流学习的一种方式,毕竟MW不是商业软件,无所谓保密与否
id: 11229960669
43L | 作者:Anti_Tencent | 发布于 2011-02-08 19:07
Fahlee你有点过了。
MW关卡又没有版权,拆解也好,修改也好,只要没有把它换个名字重新发布就行。
id: 11231276902
46L | 作者:Anti_Tencent | 发布于 2011-02-08 20:43
回复:44楼
你干什么?
id: 11231399311
47L | 作者:Fahlee | 发布于 2011-02-08 20:52
得了得了,反正反编译MW关卡没什么,但是拿去录像就有点过了....41楼的话当作没说过吧....
id: 11231416686
48L | 作者:Fahlee | 发布于 2011-02-08 20:53
44,45楼涉嫌刷屏和灌水,删之~
楼上补充,如果是这样来展现自己的技术的话,鄙视也是理所当然
id: 11232853748
49L | 作者:y479021776 | 发布于 2011-02-08 22:26
**好吃!
id: 11242554803
50L | 作者:祝贺高考成功3 | 发布于 2011-02-09 19:32
楼上太香了!
id: 11264757680
51L | 作者:eeekaaa | 发布于 2011-02-11 15:18
我也要!
id: 11293570565
52L | 作者:祝贺高考成功3 | 发布于 2011-02-13 20:43
sucker!!!!!
楼上好吃!!!!!
id: 16807449559
54L | 作者:newlife2017 | 发布于 2012-01-26 15:04
@nmnmoooh @Fahlee_5
id: 16809062330
55L | 作者:Fahlee_5 | 发布于 2012-01-26 16:38
啊,53楼被我误删了...sorry....
id: 17719391731
56L | 作者:chslrer | 发布于 2012-03-06 09:18
很好,很强大,受教了,这种技术篇应该支持才对,
id: 17726332815
57L | 作者:Fahlee | 发布于 2012-03-06 14:46
不要挖坟,谢谢合作